import 'dart:convert';

import 'package:enterprise_v6_app/generated/json/base/json_field.dart';
import 'package:enterprise_v6_app/generated/json/scheduling_config_entity.g.dart';
export 'package:enterprise_v6_app/generated/json/scheduling_config_entity.g.dart';

/// 值班配置计划
@JsonSerializable()
class SchedulingConfigEntity {
  SchedulingConfigEntity();

  factory SchedulingConfigEntity.fromJson(Map<String, dynamic> json) => $SchedulingConfigEntityFromJson(json);

  ///	app打卡状态：1-上班卡 2-下班卡 3-请假
  late int appClockStatus = 0;

  ///	请假备注
  late String askForLeave = '';

  ///	班次开始时间
  late String classesBeginDate = '';

  ///	班次实际打卡开始时间
  late String classesBeginDateRecord = '';

  ///	颜色值
  late String classesColor = '';

  ///	班次结束时间
  late String classesEndDate = '';

  ///	班次实际打卡结束时间
  late String classesEndDateRecord = '';

  ///	值班班次ID
  late String classesId = '';

  ///	当前班次名称
  late String classesName = '';

  ///	打卡备注
  late String clockInRemark = '';

  ///	企业编码
  late String companyCode = '';

  ///	创建人
  late String createBy = '';

  ///	创建人id
  late String createById = '';

  ///	创建时间
  late String createDate = '';

  ///	正常-0 已删除-1
  late String deleted = '';

  ///	部门
  late String departmentId = '';

  ///	打卡状态:1-正常 2-缺班 3-早退 4-迟到 5-请假
  late int dutyResults = 0;

  ///	主键id
  late String id = '';

  ///	工号
  late String jobNumber = '';

  ///	值班日期
  late String onDutyDate = '';

  ///	值班日期 yyyy-MM-dd
  late String onDutyDateStr = '';

  ///	值班领导
  late String onDutyLeader = '';

  ///	值班领导电话
  late String onDutyLeaderTel = '';

  ///	值班状态（字典ID）
  late String onDutyStatus = '';

  ///	值班类型（字典ID）
  late String onDutyType = '';

  ///	值班领导手机
  late String onDutyUserPhone = '';

  ///	人员类型
  late String personType = '';

  ///	职位
  late String position = '';

  ///	排班表ID
  late String schedulingConfigId = '';

  ///	修改人
  late String updateBy = '';

  ///	修改人id
  late String updateById = '';

  ///	修改时间
  late String updateDate = '';

  ///	用户ID
  late String userId = '';

  ///	姓名
  late String userName = '';

  Map<String, dynamic> toJson() => $SchedulingConfigEntityToJson(this);

  @override
  String toString() {
    return jsonEncode(this);
  }
}
